package com.sg.service.base.app;

import com.sg.dto.base.app.req.*;
import com.sg.entity.OmsCycle;

import java.util.List;

/**
 * @author ：
 * @version 1.0
 * @date ：
 */
public interface MOmsCycleService {
    /**
     * 3-4-04新增周期
     */
    String addCycle(OmsCycle omsCycle);

    /**
     * 3-4-04批量查周期列表
     */
    List<OmsCycle> batchQueryCycle(BatchQueryCycleReq reqDto);

    /**
     * 3-4-04批量查周期列表By类型Code
     */
    List<OmsCycle> batchQueryCycleByCycCode(BatchQueryCycleByCycCodeReq reqDto);

    /**
     * M生成周期排序(特殊方法）
     */
    String generateOrderNumber(OmsCycle omsCycle);

    /**
     * 3-4-04删除周期
     */
    boolean deleteCycle(String cycleId);

    /**
     * 3-4-04查询周期详情
     */
    OmsCycle queryCycleDetail(QueryCycleDetailReq reqDto);

    /**
     * 3-4-04查询周期列表
     */
    List<OmsCycle> queryCycleList(QueryCycleListReq reqDto);

    /**
     * 3-4-04修改周期
     */
    boolean updateCycle(OmsCycle omsCycle);

    /**
     * 3-4-04查询判断周期详情（周期资料用）
     */
    OmsCycle queryJudgeCycleDetail(QueryJudgeCycleDetailReq reqDto);

    /**
     * 3-4-04查询历史周期列表
     */
    List<OmsCycle> queryHistoryCycleList(QueryHistoryCycleListReq reqDto);

    /**
     * 3-4-04查询子周期列表
     */
    List<OmsCycle> querySubcycleList(QuerySubcycleListReq reqDto);

    /**
     * M3-查询单条周期详情
     */
    OmsCycle querySingleCycleDetail(QuerySingleCycleDetailReq reqDto);

    /**
     * 3-4-04查询周期倒序列表
     */
    List<OmsCycle> queryCycleSortList(QueryCycleSortListReq reqDto);

    /**
     * 3-4-04查询中期周期详情
     */
    OmsCycle queryMidCycleDetail(QueryMidCycleDetailReq reqDto);

    /**
     * 3-4-04查询时间匹配周期列表
     */
    List<OmsCycle> queryTimeMatchCycleList(QueryTimeMatchCycleListReq reqDto);

    /**
     * 3-4-04查询时间匹配周期详情
     */
    OmsCycle queryTimeMatchCycleDetail(QueryTimeMatchCycleDetailReq reqDto);

    /**
     * 3-4-04查询周期时间匹配周期详情
     */
    OmsCycle queryCycleTimeMatchingCycleDetail(QueryCycleTimeMatchingCycleDetailReq reqDto);

    /**
     * 3-4-04新增综合周期
     */
    String addSyntheticalCycle(OmsCycle omsCycle);

    /**
     * 3-4-04查询周期内周期列表
     */
    List<OmsCycle> queryCycleWithinCycleList(QueryCycleWithinCycleListReq reqDto);

    /**
     * 3-4-04查询时间等于查周期详情详情
     */
    OmsCycle queryTimeEqualQueryCycleDetailsDetail(QueryTimeEqualQueryCycleDetailsDetailReq reqDto);

    /**
     * 3-4-04批量删周期
     */
    boolean batchDeleteCycle(List<String> reqDto);

    /**
     * 3-4-04查询租户周期列表ByCodes
     */
    List<OmsCycle> batchQueryTenantCycleListByCodes(BatchQueryTenantCycleListByCodesReq reqDto);

    /**
     * 3-4-04批量查询周期类型匹配周期
     */
    List<OmsCycle> batchQueryCycleTypeMatchCycle(BatchQueryCycleTypeMatchCycleReq reqDto);

    /**
     * 3-4-04查询向右过程周期列表ByCodes
     */
    List<OmsCycle> batchQueryRightProcessCycleByCodeListByCodes(BatchQueryRightProcessCycleByCodeListByCodesReq reqDto);

    /**
     * 3-4-04查询最小周期
     */
    OmsCycle queryMinimumCycleDetail(QueryMinimumCycleDetailReq reqDto);

    /**
     * 3-4-04查询最大周期
     */
    OmsCycle queryMaximumCycleDetail(QueryMaximumCycleDetailReq reqDto);

    /**
     * 3-4-04根据时间范围查询周期详情（开始小于等于结束大于等于）
     */
    OmsCycle queryTimeRangeFindCycleDetail(QueryTimeRangeFindCycleDetailReq reqDto);

    /**
     * 3-4-04查询周期（开始大于等于结束小于等于）列表
     */
    List<OmsCycle> queryCycleByEqualGreateAndLessGreateList(QueryCycleByEqualGreateAndLessGreateListReq reqDto);

    /**
     * 3-4-04查询周期详情（起止时间等于）
     */
    OmsCycle queryCycleByTimeEqualDetail(QueryCycleByTimeEqualDetailReq reqDto);
    //
}
